[Go] Testing

Go는 기본적으로 Testing 패키지를 가지고 있습니다. Go로 테스트 코드를 짜는 방법을 한번 확인해 보겠습니다.

testing - The Go Programming Language
_Package testing provides support for automated testing of Go packages. It is intended to be used in concert with the…_golang.org

기본적으로 세가지의 테스트 방법을 지원합니다.

  1. testing
  2. benchmark
  3. example

이렇게 세가지 입니다.

파일은 반드시 _test.go 형식으로 끝나는 파일만

go test -v [파일명]

명령어를 통해 실행되어집니다.

testing

func TestXxx(\*testing.T)

의 함수 모양을 가져야 합니다. 실행을 할 때는 스크립트 처럼 순차적으로 진행됩니다.

assertion 계열의 문법은 사용하지 않으면 testing 파일 안에서 자유롭게 문법을 사용하다가 에러가 날 조건들이 생길 경우는

t.Error("여기서 에러 발생")

과 같은 형식으로 에러를 발생시킬 수 있습니다.

benchmark

benchmark 옵션은 실행속도를 확인할 수 있습니다.

func BenchmarkXxx(\*testing.B)

형태로 함수가 정의되어 있습니다.

go test -v [파일명] -bench [regexp]

같은 형태로 뒤에 bench option 을 주는게 중요합니다.

BenchmarkZ-4 10000000 138 ns/op  
BenchmarkA-4 10000000 143 ns/op

와 같이 output 이 나옵니다.

example

example 은 예제를 만들어 테스트 처럼 사용할 수 있습니다.

func Example\_suffix() { ... }  
func ExampleF\_suffix() { ... }  
func ExampleT\_suffix() { ... }  
func ExampleT\_M\_suffix() { ... }

Example 접두어만 주면 실행이 됩니다.

중요!

함수 내에 아래와 같은 형식이 없으면 실행되지 않습니다.

func ExampleSalutations() {  
fmt.Println("hello, and")  
fmt.Println("goodbye")  
// Output:  
// hello, and  
// goodbye  
}

Output:

이부분이 중요합니다.

실행순서

test->example->benchmark 순으로 실행됩니다.

By Keen Dev on February 27, 2016.

Exported from Medium on May 31, 2017.